{ "cells": [ { "cell_type": "markdown", "id": "6458d390", "metadata": {}, "source": [ "# Activities, peaks, and exposure statistics\n", "\n", "This example shows how to:\n", "\n", "- Load a 1D time series (CPC total number concentration)\n", "- Inspect main and extra data\n", "- Define simple time segments (activities)\n", "- Detect peaks using `Peak_finder`\n", "- Plot total concentration with activity shading\n", "- Summarize activities and compute exposure metrics with `summarize_exposure`" ] }, { "cell_type": "code", "execution_count": null, "id": "6577419b", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import aerosoltools as at" ] }, { "cell_type": "markdown", "id": "82bf1344", "metadata": {}, "source": [ "## Load CPC sample data\n", "\n", "Here we load a sample CPC file from the test data folder.\n", "Adjust the path if you keep example data elsewhere." ] }, { "cell_type": "code", "execution_count": 2, "id": "e8dc0d76", "metadata": {}, "outputs": [], "source": [ "filename = r\"..\\..\\tests\\data\\Sample_CPC_AIM.txt\"\n", "cpc = at.Load_CPC_file(filename,extra_data=True)" ] }, { "cell_type": "markdown", "id": "cb0a70b2", "metadata": {}, "source": [ "## Inspect metadata and extra data\n", "\n", "The loader returns an `Aerosol1D` instance with:\n", "\n", "- `.data` – main time series + activity masks\n", "- `.extra_data` – optional additional channels (environmental, meta, etc.)\n", "- `.metadata` – instrument, unit, etc." ] }, { "cell_type": "code", "execution_count": 26, "id": "9269a5b8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Metadata:\n", " {'instrument': 'CPC', 'serial_number': '06160001 ', 'unit': 'cm$^{-3}$'}\n", "\n", "Main columns: ['Total_conc', 'All data']\n", "Extra-data columns: ['Sample Length (s)', 'Averaging Interval (s)', 'Title', 'Instrument ID', 'Instrument Errors', 'Mean(#/cm³)', 'Min(#/cm³)', 'Max(#/cm³)', 'Std. Dev.(#/cm³)', 'Comments']\n" ] } ], "source": [ "print(\"Metadata:\\n\", cpc.metadata)\n", "print(\"\\nMain columns:\", list(cpc.data.columns))\n", "print(\"Extra-data columns:\", list(cpc.extra_data.columns))" ] }, { "cell_type": "markdown", "id": "3259df41", "metadata": {}, "source": [ "You can access data in the main DataFrame via the `.data` property of the defined cpc variable:" ] }, { "cell_type": "code", "execution_count": 27, "id": "b5d51aa0", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | Total_conc | \n", "All data | \n", "
|---|---|---|
| Datetime | \n", "\n", " | \n", " |
| 2023-08-14 11:14:29 | \n", "1468 | \n", "True | \n", "
| 2023-08-14 11:14:30 | \n", "1459 | \n", "True | \n", "
| 2023-08-14 11:14:31 | \n", "1437 | \n", "True | \n", "
| 2023-08-14 11:14:32 | \n", "1462 | \n", "True | \n", "
| 2023-08-14 11:14:33 | \n", "1481 | \n", "True | \n", "
| ... | \n", "... | \n", "... | \n", "
| 2023-08-14 11:20:49 | \n", "1293 | \n", "True | \n", "
| 2023-08-14 11:20:50 | \n", "1307 | \n", "True | \n", "
| 2023-08-14 11:20:51 | \n", "1311 | \n", "True | \n", "
| 2023-08-14 11:20:52 | \n", "1295 | \n", "True | \n", "
| 2023-08-14 11:20:53 | \n", "1311 | \n", "True | \n", "
384 rows × 2 columns
\n", "| \n", " | Sample Length (s) | \n", "Averaging Interval (s) | \n", "Title | \n", "Instrument ID | \n", "Instrument Errors | \n", "Mean(#/cm³) | \n", "Min(#/cm³) | \n", "Max(#/cm³) | \n", "Std. Dev.(#/cm³) | \n", "Comments | \n", "
|---|---|---|---|---|---|---|---|---|---|---|
| Datetime | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
| 2023-08-14 11:14:29 | \n", "00:01 | \n", "1 | \n", "\n", " | 3007-06160001 3.1 | \n", "NaN | \n", "1468 | \n", "1468 | \n", "1468 | \n", "0 | \n", "NaN | \n", "
| 2023-08-14 11:14:30 | \n", "00:01 | \n", "1 | \n", "\n", " | 3007-06160001 3.1 | \n", "NaN | \n", "1459 | \n", "1459 | \n", "1459 | \n", "0 | \n", "NaN | \n", "
| 2023-08-14 11:14:31 | \n", "00:01 | \n", "1 | \n", "\n", " | 3007-06160001 3.1 | \n", "NaN | \n", "1437 | \n", "1437 | \n", "1437 | \n", "0 | \n", "NaN | \n", "
| 2023-08-14 11:14:32 | \n", "00:01 | \n", "1 | \n", "\n", " | 3007-06160001 3.1 | \n", "NaN | \n", "1462 | \n", "1462 | \n", "1462 | \n", "0 | \n", "NaN | \n", "
| 2023-08-14 11:14:33 | \n", "00:01 | \n", "1 | \n", "\n", " | 3007-06160001 3.1 | \n", "NaN | \n", "1481 | \n", "1481 | \n", "1481 | \n", "0 | \n", "NaN | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 2023-08-14 11:20:49 | \n", "00:01 | \n", "1 | \n", "\n", " | 3007-06160001 3.1 | \n", "NaN | \n", "1293 | \n", "1293 | \n", "1293 | \n", "0 | \n", "NaN | \n", "
| 2023-08-14 11:20:50 | \n", "00:01 | \n", "1 | \n", "\n", " | 3007-06160001 3.1 | \n", "NaN | \n", "1307 | \n", "1307 | \n", "1307 | \n", "0 | \n", "NaN | \n", "
| 2023-08-14 11:20:51 | \n", "00:01 | \n", "1 | \n", "\n", " | 3007-06160001 3.1 | \n", "NaN | \n", "1311 | \n", "1311 | \n", "1311 | \n", "0 | \n", "NaN | \n", "
| 2023-08-14 11:20:52 | \n", "00:01 | \n", "1 | \n", "\n", " | 3007-06160001 3.1 | \n", "NaN | \n", "1295 | \n", "1295 | \n", "1295 | \n", "0 | \n", "NaN | \n", "
| 2023-08-14 11:20:53 | \n", "00:01 | \n", "1 | \n", "\n", " | 3007-06160001 3.1 | \n", "NaN | \n", "1311 | \n", "1311 | \n", "1311 | \n", "0 | \n", "NaN | \n", "
384 rows × 10 columns
\n", "| \n", " | Segment | \n", "Duration (min) | \n", "Duration (HH:MM) | \n", "Min (cm$^{-3}$) | \n", "Max (cm$^{-3}$) | \n", "Mean (cm$^{-3}$) | \n", "Median (cm$^{-3}$) | \n", "Std (cm$^{-3}$) | \n", "N samples | \n", "
|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "All data | \n", "6.417 | \n", "00:06 | \n", "1214.0 | \n", "2127.0 | \n", "1379.339 | \n", "1364.0 | \n", "94.659 | \n", "384 | \n", "
| 1 | \n", "Peak | \n", "0.017 | \n", "00:00 | \n", "2127.0 | \n", "2127.0 | \n", "2127.000 | \n", "2127.0 | \n", "NaN | \n", "1 | \n", "
| 2 | \n", "initial_phase | \n", "3.050 | \n", "00:03 | \n", "1267.0 | \n", "1559.0 | \n", "1417.346 | \n", "1425.0 | \n", "62.829 | \n", "182 | \n", "
| 3 | \n", "second_phase | \n", "1.017 | \n", "00:01 | \n", "1240.0 | \n", "1399.0 | \n", "1319.869 | \n", "1320.0 | \n", "33.210 | \n", "61 | \n", "
| \n", " | Segment | \n", "Metric | \n", "Unit | \n", "Samples | \n", "Duration_min | \n", "Duration_HH:MM | \n", "Mean | \n", "Std | \n", "Median | \n", "Max | \n", "... | \n", "Short_limit_exceedance_fraction | \n", "Short_limit_fullwindow_exceedance_min | \n", "Short_limit_fullwindow_exceedance_episodes | \n", "Long_limit | \n", "Long_limit_exceeded | \n", "Long_limit_exceedance_min | \n", "C95 | \n", "C99 | \n", "IQR | \n", "Peaks | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "All data | \n", "PNC | \n", "cm$^{-3}$ | \n", "384 | \n", "6.42 | \n", "00:06 | \n", "1379.018 | \n", "94.659 | \n", "1364.0 | \n", "2127.0 | \n", "... | \n", "1.0 | \n", "0.02 | \n", "1 | \n", "1.0 | \n", "True | \n", "6.42 | \n", "1503.95 | \n", "1605.24 | \n", "107.25 | \n", "1 | \n", "
1 rows × 26 columns
\n", "